import matplotlib.pyplot as plt
import numpy as np 
import math

#设置坐标轴
ax=plt.gca()      
ax.spines["right"].set_color("none")   #设置坐标轴的颜色
ax.spines["top"].set_color("none")
ax.spines["left"].set_position(("data",0))  #设置坐标轴的位置
ax.spines["bottom"].set_position(("data",0))
ax.xaxis.set_ticks_position("bottom")   #x轴的数据显示在x轴右侧
ax.yaxis.set_ticks_position("left")    #y轴的数据显示在y轴左侧
plt.axis([-45,45,-5,45])   #指定绘图范围(x负, x正，y负，y正)
plt.grid()     #显示网格线


X = [0,0,5,1,8]
Y = [0,10,15,33,40]
X = np.array(X)
Y = np.array(Y)
print(X)
print(Y)
plt.plot(0, 0, 'bo')  # 绘制紫红色的圆形的点
plt.plot(X,Y,color='r',linewidth=1.0,linestyle='-')  # 绘制


#移动向量
X1=X
Y1=Y
i=1

Y1=Y1-Y1[i] #折线向下移动，用减法 （向量移动）
plt.plot(X1,Y1,color='b',linewidth=1.0,linestyle='-')  # 绘制
X1 = X1[i:] #截取原点以上的数据
Y1 = Y1[i:]
print(X1)
print(Y1)


# 直线在约束在x,y轴上滑动
Vx=0.5    #x轴上滑动速度
time_step = 0   #执行次数
a=abs(X1[i])  #x轴初始长度
b=abs(Y1[i])
Ax = a
print(a) 
print(b)
while(Ax > 0):
    Ax = a - (Vx*time_step)                  # A点在Y轴上的值
    By = b - ((a**2 + b**2)-Ax**2)**(1/2)    # B点在Y轴上的值
    print('{}*****{}'.format(Ax, By))   
    x_points = [Ax,0]
    y_points = [Y1[i],By]
    plt.plot(x_points, y_points) #画线

    time_step = time_step + 1
    plt.pause(1)
